草庐IT

SQL 通配符

全部标签

java - 如何获取 Oracle SQL 查询中错误的位置?

如何获取查询中错误的位置?我需要在导致错误的查询字符串中获取位置,就像sqlplus那样:SQL>insertintotbl(data)values('12345')2/insertintotbl(data)values('12345')*ERRORatline1:ORA-12899:valuetoolargeforcolumn"schmnm"."tbl"."data"(actual:5,maximum:3)我该怎么做? 最佳答案 当我几乎失去希望时,经过一番胡说八道后,我找到了(感谢Google中正确的搜索字符串)以下链接:htt

java - 无界通配符参数化类型数组的实际用法是什么?

我正在通读AngelikaLangerParametrizedTypeWorkAround.我明白很多在这里的概念中,我确实理解什么是无界通配符参数化类型。尽管从引用文献中引用它指出:-staticvoidtest(){Pair[]intPairArr=newPair[10];addElements(intPairArr);Pairpair=intPairArr[1];//error-1Integeri=pair.getFirst();pair.setSecond(i);}staticvoidaddElements(Object[]objArr){objArr[0]=newPair(0

Java - 泛型和通配符以及接口(interface)与实现

我有一个关于Java泛型的问题。假设我有以下界面:publicstaticclassSomething{publicvoidset(Tt){}}publicstaticinterfaceManager{publicvoidadd(finalStringkey,finalSomethingo);publicSomethingget(finalStringkey);}用法示例:finalManagerm=...;m.add("key",newSomething());m.get("key").set(newInteger(5));我还希望能够添加Something,Something,..

java - 在路径中使用通配符执行 Jar

我有一个启动jar文件的应用程序。但是,jar的名称中有版本号,并且每隔几个月就会更改一次。我想写这个,这样我就不必在每次更改jar时都更新应用程序的代码。我试过使用*作为通配符,但我得到:Error:UnabletoaccessjarfileC:\Selenium\vendor\selenium-server-standalone-\*.jar我正在运行的命令是:java-jarC:\\Selenium\\vendor\\selenium-server-standalone-*.jar当我输入版本号时,jar成功启动。无论如何要在这里使用通配符吗? 最佳答

java - 将空集设置为 SQL IN 参数时出现 SQLGrammarException

我的代码导致SQLGrammarException当我将空集设置为SQLIN参数时:Queryquery=this.entMngr.createNativeQuery("SELECTfoo_id,first,lastFROMfooWHEREbarIN:barSet");//barSetisaSetquery.setParameter("barSet",barSet);//thisthrowsexceptionListnativeList=query.getResultList();当集合不为空时一切正常。我怎样才能让这个集合(或提交的任何集合)是否被填充不可知?

java - 在 HQL order by 子句中处理 SQL 注入(inject)

在HibernateHQLorderby子句中是否有一种简单的方法来处理SQL注入(inject)。命名参数显然不适用于它。编辑:请随意发布您处理此问题的方法。我想看看其他人的解决方案并从中学习。感谢任何建议和解决方案。 最佳答案 您可以使用HibernatecriteriaAPI而不是HQL。标准API检查订单标准是否引用有效属性。如果你尝试这样的事情:publicvoidtestInjection(){StringorderBy="this_.typedesc,type";Criteriacrit=this.getSession

java - SQL Server 中的日期提取问题

我试图列出在SQLServer表中注册的日期,但我的问题是我提取的所有日期都与表中的日期相差2天。例如,我的数据库中有2012-12-25,当我检索它并将其转换为Java.util.Date时,它​​变成了2012-12-23...我在另一个表中有关于日期的进程,这些进程运行良好。我正在使用SQLServer2008、Hibernate3和Spring3。编辑:表的列数据类型是日期,我正在使用hibernate检索它,所以这是我的hibernate查询调用:publicListretrieveAllHolidays(){return(List)sessionFactory.getCur

java - 在 Java 中转义 SQL 字符串

背景:我目前正在为企业CMS数据库(业务对象)开发Java前端。目前,我正在构建一个允许用户构建自定义数据库查询的功能。我已经实现了措施以确保用户只能使用已批准用户访问的可用列和运算符的子集进行选择(例如,可以选择SI_EMAIL_ADDRESS,而不能选择更强大的字段,如SI_CUID)。到目前为止,一切进展顺利,但现在是保护此功能免受潜在SQL注入(inject)攻击的时候了。问题:我正在寻找一种方法来转义用户输入的字符串。我已经看过PerparedStatement,但是我不得不使用第三方API来访问数据库。这些API对我来说是不可变的,直接访问数据库是不可能的。各个方法采用表示

java - 如何在 SQL 查询中安全地使用 * 作为通配符

我需要实现一个搜索,用户可以在其中输入*作为通配符。他们正在搜索的数据库是一个SQL服务器。我正在考虑将*替换为%:userInput=userInput.replace('*','%');我担心因为我是“手动”执行此操作,所以我可能会引入一些错误或安全漏洞。你看到这样做有什么问题吗?有图书馆可以帮我做这件事吗?我使用Hibernate作为ORM映射器和CriteriaAPI来创建查询,如果它有助于回答的话。 最佳答案 这正是我们公司所做的。我们有两种产品,一种像您的示例一样在代码中使用简单的替换。另一个存储过程非常繁重的过程是在“

Java 类路径通配符在没有引号的情况下不起作用

我有一个包含大量jar文件和类路径的文件夹:-classpath./classes:./jogamp-all-platforms/jar/*但是它没有找到包裹。为了确保我有相关资源,我手动找到包含它的jar并将类路径更改为:-classpath./classes:./jogamp-all-platforms/jar/jogl-all.jar现在它不再提示找不到包裹了。 最佳答案 在Debian下,我必须在通配符周围加上引号才能工作:"*"那么编译命令就变成了:javac-cp~/my\stuff/Java/"*"test.java我